package com.heh.mybatisplus.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
    * 产品信息表
    */
@Schema(description  ="com-example-demo-pojo-BLoanInfo")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "b_loan_info")
public class BLoanInfo implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "")
    private Integer id;

    /**
     * 产品名称
     */
    @TableField(value = "product_name")
    @Schema(description = "产品名称")
    private String productName;

    /**
     * 产品利率
     */
    @TableField(value = "rate")
    @Schema(description = "产品利率")
    private BigDecimal rate;

    /**
     * 产品期限
     */
    @TableField(value = "cycle")
    @Schema(description = "产品期限")
    private Integer cycle;

    /**
     * 产品发布时间
     */
    @TableField(value = "release_time")
    @Schema(description = "产品发布时间")
    private Date releaseTime;

    /**
     * 产品类型 0新手宝，1优选产品，2散标产品
     */
    @TableField(value = "product_type")
    @Schema(description = "产品类型 0新手宝，1优选产品，2散标产品")
    private Integer productType;

    /**
     * 产品编号
     */
    @TableField(value = "product_no")
    @Schema(description = "产品编号")
    private String productNo;

    /**
     * 产品金额
     */
    @TableField(value = "product_money")
    @Schema(description = "产品金额")
    private BigDecimal productMoney;

    /**
     * 产品剩余可投金额
     */
    @TableField(value = "left_product_money")
    @Schema(description = "产品剩余可投金额")
    private BigDecimal leftProductMoney;

    /**
     * 最低投资金额，即起投金额
     */
    @TableField(value = "bid_min_limit")
    @Schema(description = "最低投资金额，即起投金额")
    private BigDecimal bidMinLimit;

    /**
     * 最高投资金额，即最多能投多少金额
     */
    @TableField(value = "bid_max_limit")
    @Schema(description = "最高投资金额，即最多能投多少金额")
    private BigDecimal bidMaxLimit;

    /**
     * 产品状态（0未满标，1已满标，2满标已生成收益计划）
     */
    @TableField(value = "product_status")
    @Schema(description = "产品状态（0未满标，1已满标，2满标已生成收益计划）")
    private Integer productStatus;

    /**
     * 产品投资满标时间
     */
    @TableField(value = "product_full_time")
    @Schema(description = "产品投资满标时间")
    private Date productFullTime;

    /**
     * 产品描述
     */
    @TableField(value = "product_desc")
    @Schema(description = "产品描述")
    private String productDesc;



    ////////////////////////3.1.3 字段映射 @TableField(value = "test_1")//////////////
    @TableField(value = "test_1")
    @Schema(description = "text")
    private String text;
    /////////字段失效 @TableField(select = false)来隐藏这个字段////////////
    /**
     * 版本号
     */
    @TableField(value = "version", select = false)
//    @TableField(value = "version")
    @Schema(description = "版本号")
    private Integer version;

    /////////不需要数据库存储，但是却需要展示TableField(exist = false)////////////
    @TableField(exist = false)
    private Integer online;

    private static final long serialVersionUID = 1L;
}